/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	HEDate.java
 * 模块说明：	
 * 修改历史：
 * Aug 29, 2007 - lxm - 创建。
 */
package com.hd123.rumba.jsp.table;

import com.hd123.rumba.request.JspLib;

/**
 * 用于日期数据的表格单元格编辑器。
 * 
 * @author lxm
 * 
 */
public class HEDate extends HEText {

  /**
   * 构造函数。
   * 
   * @param params
   *          其它参数数组。可用的参数说明参见相应的属性说明。
   */
  public HEDate(Object[] params) {
    super(params);
    if (this.style == null)
      this.style = VALUE_STYLE_DATE;
  }

  private Integer style;

  /** 属性{@link #style}的取值，表示仅显示时间（精确到分）。 */
  public static final Integer VALUE_STYLE_TIME_HM = new Integer(1);
  /** 属性{@link #style}的取值，表示仅显示时间（精确到秒）。 */
  public static final Integer VALUE_STYLE_TIME_HMS = new Integer(2);
  /** 属性{@link #style}的取值，表示仅显示时间（精确到毫秒）。 */
  public static final Integer VALUE_STYLE_TIME_HMSZ = new Integer(3);
  /** 属性{@link #style}的取值，表示仅显示日期。 */
  public static final Integer VALUE_STYLE_DATE = new Integer(4);
  /** 属性{@link #style}的取值，表示仅显示日期+时间（精确到分）。 */
  public static final Integer VALUE_STYLE_DATETIME_YMDHM = Integer.valueOf(VALUE_STYLE_DATE
      .intValue()
      + VALUE_STYLE_TIME_HM.intValue());
  /** 属性{@link #style}的取值，表示仅显示日期+时间（精确到秒）。 */
  public static final Integer VALUE_STYLE_DATETIME_YMDHMS = Integer.valueOf(VALUE_STYLE_DATE
      .intValue()
      + VALUE_STYLE_TIME_HMS.intValue());
  /** 属性{@link #style}的取值，表示仅显示日期+时间（精确到毫秒）。 */
  public static final Integer VALUE_STYLE_DATETIME_YMDHMSZ = Integer.valueOf(VALUE_STYLE_DATE
      .intValue()
      + VALUE_STYLE_TIME_HMSZ.intValue());

  /**
   * 风格。取值参见类似“VALUE_STYLE_*”的常量。默认为{@link #VALUE_STYLE_DATE}。<br>
   * 对应参数名"style"，下一个参数为取值，类型为Integer。<br>
   */
  public Integer getStyle() {
    return style;
  }

  public void setStyle(Integer style) {
    this.style = style;
  }

  @Override
  protected boolean readParam(String paramName, Object paramValue) {
    if (super.readParam(paramName, paramValue))
      return true;
    if ("style".equals(paramName))
      this.style = (Integer) paramValue;
    return false;
  }

  @Override
  protected String getClassNameJS() {
    return "RTableEditor.EDate";
  }

  @Override
  protected String buildConfigJS() {
    StringBuffer sb = new StringBuffer();
    if (this.style != null)
      sb.append("style: " + JspLib.toJSConst(this.style));
    return sb.toString();
  }

}
